/*
 * create:2016年4月16日 下午12:42:03
 * author:wangds  
 */
package net.wangds.comp.endpoint.http.interpreter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.wangds.comp.endpoint.http.AbstractHttpRequestInterpreter;
import net.wangds.comp.endpoint.http.proc.ReadPostBodyAsBytesProcessor;

/**
 * .
 * @author wangds
 *
 */
public class ReqPostBodyToStringInterpreter extends AbstractHttpRequestInterpreter<String>{

  private String encoding = "UTF8";
  
  /**
   * The getter method of the property encoding.
   * @author wangds 2016年4月16日 下午1:19:37.
   * @return the encoding.
   */
  public String getEncoding() {
    return encoding;
  }

  /**
   * The setter method of the property encoding.
   * @param theencoding the encoding to set
   * @author wangds 2016年4月16日 下午1:19:37.
   */
  public void setEncoding(String encoding) {
    this.encoding = encoding;
  }

  /*
   * @see net.wangds.comp.endpoint.http.AbstractHttpRequestInterpreter#interpreter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
   * @author wangds 2016年4月16日 下午12:43:05.
   */
  @Override
  protected String interpreter(HttpServletRequest req, HttpServletResponse resp) {
    String res = "";
    ReadPostBodyAsBytesProcessor proc = new ReadPostBodyAsBytesProcessor();
    proc.setIntput(req);
    try {
      proc.process();
      byte[] bytes = proc.getResult();
      res = new String(bytes,this.getEncoding());
    } catch (Exception e) {
      this.getLogger().error(e.getLocalizedMessage(),e);
    }
    return res;
  }

}
